<?php
/**
 *   Joomdiet - components/models/variable.php
 *   Author: Juan Dapena Paz (juan@bittingbits.com)
 *   Copyright (C) 2010 Bitting Bits S.L.
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.model');

class JoomdietModelVariable extends JModel
{
    var $_data;
    var $_query;

    function __construct()
    {
        parent::__construct();
    }
    
    function _buildQuery()
    {
        $this->_query = 'SELECT * FROM #__joomdiet_Variable';
        return $this->_query;
    }
    
    function getData()
    {
        if (empty($this->_data)) {
            $this->_buildQuery();
            
            $this->_db->setQuery($this->_query);
            $this->_data = $this->_getList($this->_query);
        }
        
        return $this->_data;
    }
    
    function getVariable($id)
    {
        $this->_buildQuery();
        $this->_query .= ' WHERE id='.$id;
        $this->_db->setQuery($this->_query);
        $result = $this->_db->loadObject();
        return $result;
    }
    
    function getRecommended($id, $age, $pa, $group)
    {
        $query = 'SELECT suggested_value FROM #__joomdiet_Nutritional ';
        $query .= 'WHERE variable_id='.$id.' AND age_min <= '.$age.' ';
        $query .= 'AND age_max >='.$age.' AND population_group = '.$group;
        
        $this->_db->setQuery($query);
        $suggestedvalue = $this->_db->loadResult();
        
        // make suggested value calcs (coming soon)
        $variable = $this->getVariable($id);
        if ($variable->name == 'Calorías') {
            $age_rest = $age - 19;
            if ($group == 3) {
                $result = $suggestedvalue - ($age_rest*10);
            } else $result = $suggestedvalue - ($age_rest*7);
            
            // physical activity modifier
            // light - 0.78
            // normal - 1
            // hard - 1.16
            $pa_mod = 0;
            if ($pa == 'physlight') $pa_mod = 0.78;
            else if ($pa == 'physmedium') $pa_mod = 1;
            else $pa_mod = 1.16;
            
            $result = $result*$pa_mod;
        } else $result = $suggestedvalue;
        
        return $result;
    }
}
?>
